package com.cyw.common.constants;

/**
 * @Author: cyw
 * @Date: 2021/1/8
 * @Desc: 系统基础状态码
 */
public interface BaseStatusCode {

    /**
     * 成功
     */
    StatusCode SUCCESS = new StatusCode("1", "成功", "成功");

    /**
     * 业务错误兜底异常码
     */
    StatusCode ERROR_COMMON = new StatusCode("2", "业务错误", "请求处理失败");

    /**
     * 未知错误兜底异常码
     */
    StatusCode ERROR_INTERNAL = new StatusCode("3", "系统内部错误", "系统错误，请联系技术支持");

    /**
     * 参数校验失败
     */
    StatusCode ERROR_PARAM_VALID_FAIL = new StatusCode("4", "参数校验失败", "参数校验失败");

    /**
     * 接口未找到
     */
    StatusCode ERROR_API_NOT_FOUND = new StatusCode("5", "接口不存在，请升级您的系统版本");

    /**
     * 接口已经标记为废弃
     */
    StatusCode ERROR_API_DEPRECATED = new StatusCode("6", "接口已经废弃，请升级您的系统版本");

    /**
     * 认证信息验证失败
     */
    StatusCode ERROR_AUTH_FAIL = new StatusCode("7", "验证失败", "请重新登录");

    /**
     * 接口超时
     */
    StatusCode ERROR_TIME_OUT = new StatusCode("8", "接口超时", "请稍后再试");

    /**
     * RPC或第三方服务不可用
     */
    StatusCode ERROR_SERVICE_UNAVAILABLE = new StatusCode("9", "服务不可用", "服务不可用");

    /**
     * 数据库操作出现异常
     */
    StatusCode ERROR_DB = new StatusCode("11", "数据库操作异常", "系统错误");

    /**
     * 请求重复
     */
    StatusCode ERROR_REPEATED_REQUEST = new StatusCode("12", "重复的请求", "请求已经处理");

    /**
     * 已限流
     */
    StatusCode ERROR_BLOCKED = new StatusCode("13", "请求被限流", "当前访问人数较多，请稍后再试");

    /**
     * 参数校验失败
     */
    StatusCode ERROR_PARAM_PARSE_FAIL = new StatusCode("14", "参数解析失败", "参数解析失败");


    /**
     * 不支持的请求方法
     */
    StatusCode ERROR_UNSUPPORTED_METHOD = new StatusCode("15", "不支持的请求方法", "不支持的请求方法");
}
